Portable personal computers (PCs) were first introduced in the early 1980s and have since enjoyed great commercial success and consumer acceptance. As the portable PC market has grown, users have begun to demand lighter weight, lower volume PCs that can be used for longer periods of time between battery charges. Meeting these demands has proved challenging in view of the fact that most portable PCs now support peripheral devices previously available only on desktop PCs. The additional peripherals greatly increase overall power consumption, making it difficult to achieve an optimal level of functionality while maintaining an acceptable battery life. Furthermore, although for reasons other than maximizing battery life, it has become desirable to more efficiently manage power consumption of desktop PCs in order to minimize overall operating costs.
Because many of the components and peripheral devices of both desktop and portable PCs consume a great deal of power even when they are idle, power management systems have been developed which cause each component or peripheral device to operate in the lowest power consumption mode with respect to present demands on the system. For example, many computers are capable of operating in several different reduced power consumption modes, such as "standby" and "suspend-to-disk" (S2D).
Standby mode essentially puts the PC to sleep by slowing the processor and system clock, turning off the LCD backlight and stopping hard drive activity. Alternatively, S2D mode saves the current system status, including device states, application program status, and the like, by writing the contents of RAM to the hard disk, at which point power is removed from all devices. When work is resumed, the hard drive copy is copied back to the RAM and operation resumes from the point at which it was interrupted.
Successful implementation of S2D requires that there be sufficient space available on the hard disk at the time an S2D is initiated to accommodate storage of the entire system RAM. Clearly, therefore, a significant obstacle confronting PC manufacturers is how to guarantee that, at any given time, there will be sufficient space on the hard disk to implement S2D. One solution to this problem has been to configure the hard disk to include an S2D partition of a fixed size sufficient to accommodate the amount of system RAM initially installed in the PC. While this solution is viable in some instances, for example, where a user does not intend to install additional RAM into the PC, it is deficient in two major respects. First, because the S2D partition is fixed, the hard disk area allocated to the S2D partition is unavailable for use by the native operating system (OS) of the PC, thereby reducing the effective hard disk size with respect to the native OS. Moreover, if additional RAM is installed in the PC, the S2D partition must be enlarged accordingly. Enlarging the S2D partition entails downloading the contents of the entire hard disk to other media so that the hard disk can be reconfigured to have a larger S2D partition and then reloading the hard disk contents back to the hard disk. Clearly, this process is undesirably time-consuming and somewhat risky, as it is would not be inconceivable for data to be lost during the downloading/reloading process.
Another solution has been to allocate to the S2D function a file in the native OS partition in which to store the system RAM during an S2D operation. This solution is also deficient in that, if additional RAM is installed in the PC, the file will likely not be large enough to store the contents of the larger RAM, thereby rendering the S2D function inoperable. This obviously presents problems where a user expects to be able to utilize S2D functions and then suddenly discovers that he or she cannot. Moreover, a user is given no advance warning as to when S2D functions are and are not available for use.
Yet another solution, as fully disclosed and described in commonly-assigned U.S. patent application Ser. No. 08/370,595 (Atty. Docket No. DC-00691), filed Jan. 10, 1995, entitled "AUTOMATIC ADJUSTMENT OF DISK SPACE REQUIRED FOR SUSPEND-TO-DISK OPERATION," involves implementing S2D functions using a dedicated S2D partition of a fixed, minimum size, in combination with an extended partition of adjustable size. Entries in an S2D root block stored in the S2D partition point to blocks of hard disk space comprising the extended partition. The extended partition may be located in a native OS partition of the hard disk, some other available space on the hard disk, or both, and may or may not comprise contiguous hard disk space.
Although the latter technique obviates the above-described deficiencies inherent in the other "solutions" by ensuring the availability to the S2D functionality of sufficient hard disk space at any given time, while not unduly restricting the amount of hard disk space available to and useable by the native OS of the PC, a problem still remains in that, because only a portion of the space needed to perform the S2D is permanently reserved to the S2D partition, a possibility exists that the native OS will inadvertently use portions of the disk space comprising the extended partition, which, as described above, may reside in the native OS partition, for storing data. Accordingly, when an S2D is subsequently executed, a danger exists that the data stored by the OS in the extended partition will be partly or completely overwritten by the S2D utility. Therefore, what is needed is a way to prevent data accidentally written to the extended partition by the operating system from being overwritten during a subsequent S2D operation.